package com.quartet.api;

import java.text.MessageFormat;

/**
 * 功能描述: 模块异常枚举
 */
public enum ResultErrorEnum {

    /*
     *  #公共：        BMKPC000
        #客户相关：    BMKPM000
        #用户相关：    BMKPT000
        #设备相关：    BMKPS000
        #车辆相关      BMKPP000
        #订单相关：    BMKPA000
     */

    SYSTEM_INTERNAL_EXCEPTION("9999", "系统内部异常"),
    NO_ACCESS("8888", "没有访问权限"),
    NO_LOGIN("7777", "请先登录"),

    BMKPCM00("BMKPCM00", "请求参数校验失败"),
    BMKPCM01("BMKPCM01", "注册失败"),
    BMKPCM02("BMKPCM02", "取消失败"),
    BMKPCM03("BMKPCM03", "拍摄命令失败"),

    /**
     * 客户相关
     */
    BMKPT001("BMKPT001", "用户密码和确认密码不一致"),
    BMKPT002("BMKPT002", "客户名称不能为空"),
    BMKPT003("BMKPT003", "此客户下存在订单不能删除"),
    BMKPT004("BMKPT004", "用户名或密码错误"),
    BMKPT005("BMKPT005", "手机号格式错误"),


    /**
     * 用户相关
     */
    BMKPM001("BMKPM001", "当前客户不存在"),
    BMKPM002("BMKPM002", "当前登录状态过期"),
    BMKPM003("BMKPM003", "找不到当前登录的信息"),

    /**
     * 角色相关
     */
    ROKPM001("ROKPM001", "当前角色有客户关联不能删除"),

    /**
     * 服务相关
     */
    BMKPF001("BMKPF001", "当前订单的此服务已存在"),
    BMKPF002("BMKPF002", "此设备没有视频服务权限"),
    BMKPF003("BMKPF003", "设备的服务权限推送失败"),
    BMKPF004("BMKPF004", "此用户没有统计服务权限"),

    /**
     * 终端相关
     */
    BMKPZ001("BMKPZ001", "此终端已经有客户分配"),
    BMKPZ002("BMKPZ002", "此终端已经绑定流量卡"),
    BMKPZ003("BMKPZ003", "此终端不存在"),
    BMKPZ004("BMKPZ004", "此终端还未绑定订单"),
    BMKPZ005("BMKPZ005", "此终端已经存在"),
    BMKPZ006("BMKPZ006", "此批终端编码存在重复"),

    /**
     * 流量卡相关
     */
    BMKPL001("BMKPL001", "此流量卡已经存在"),
    BMKPL002("BMKPL002", "此批流量卡号存在重复"),
    BMKPL003("BMKPL003", "运营商信息不能为空"),
    BMKPL004("BMKPL004", "流量卡号格式错误"),

    /**
     * 订单相关
     */
    BMKPA001("BMKPA001", "订单不存在或已过期"),

    ;


    private String code;
    private String msg;

    ResultErrorEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getMsg() {
        return this.msg;
    }

    public String getMsg(String str) {
        return MessageFormat.format(this.msg, str);
    }

    public String getCode() {
        return this.code;
    }

    public static String getCode(String msg) {
        ResultErrorEnum[] resultErrorEnums = values();
        for (ResultErrorEnum resultErrorEnum : resultErrorEnums) {
            if (resultErrorEnum.getMsg().equals(msg)) {
                return resultErrorEnum.getCode();
            }
        }
        return null;
    }

}
